Data transmission with spatial spreading in a MIMO communication system

ABSTRACT

For data transmission with spatial spreading, a transmitting entity (1) encodes and modulates each data packet to obtain a corresponding data symbol block, (2) multiplexes data symbol blocks onto N S  data symbol streams for transmission on N S  transmission channels of a MIMO channel, (3) spatially spreads the N S  data symbol streams with steering matrices, and (4) spatially processes N S  spread symbol streams for full-CSI transmission on N S  eigenmodes or partial-CSI transmission on N S  spatial channels of the MIMO channel. A receiving entity (1) obtains N R  received symbol streams via N R  receive antennas, (2) performs receiver spatial processing for full-CSI or partial-CSI transmission to obtain N S  detected symbol streams, (3) spatially despreads the N S  detected symbol streams with the same steering matrices used by the transmitting entity to obtain N S  recovered symbol streams, and (4) demodulates and decodes each recovered symbol block to obtain a corresponding decoded data packet.

CLAIM OF PRIORITY UNDER 35 U.S.C. §120

The present Application for Patent is a Divisional of patent applicationSer. No. 11/009,200 entitled “DATA TRANSMISSION WITH SPATIAL SPREADINGIN A MIMO COMMUNICATION SYSTEM” filed Dec. 9, 2004 now U.S. Pat. No.7,194,042, and assigned to the assignee hereof and hereby expresslyincorporated by reference herein.

BACKGROUND

I. Field

The present invention relates generally to communication, and morespecifically to techniques for transmitting data in a multiple-inputmultiple-output (MIMO) communication system.

II. Background

A MIMO system employs multiple (N_(T)) transmit antennas at atransmitting entity and multiple (N_(R)) receive antennas at a receivingentity for data transmission. A MIMO channel formed by the N_(T)transmit antennas and N_(R) receive antennas may be decomposed intoN_(S) spatial channels, where N_(S)≦min {N_(T), N_(R)}. The N_(S)spatial channels may be used to transmit data in parallel to achievehigher throughput and/or redundantly to achieve greater reliability.

The MIMO channel between the transmitting entity and the receivingentity may experience various deleterious channel conditions such as,e.g., fading, multipath, and interference effects. In general, goodperformance may be achieved for data transmission via the MIMO channelif the interference and noise observed at the receiving entity arespatially “white”, which is flat or constant interference and noisepower across spatial dimension. This may not be the case, however, ifthe interference is from interfering sources located in specificdirections. If the interference is spatially “colored” (not white), thenthe receiving entity can ascertain the spatial characteristics of theinterference and place beam nulls in the direction of the interferingsources. The receiving entity may also provide the transmitting entitywith channel state information (CSI). The transmitting entity can thenspatially process data in a manner to maximizesignal-to-noise-and-interference ratio (SNR) at the receiving entity.Good performance can thus be achieved when the transmitting andreceiving entities perform the appropriate transmit and receive spatialprocessing for the data transmission in the presence of spatiallycolored interference.

To perform spatial nulling of interference, the receiving entitytypically needs to ascertain the characteristics of the interference. Ifthe interference characteristics change over time, then the receivingentity would need to continually obtain up-to-date interferenceinformation in order to accurately place the beam nulls. The receivingentity may also need to continually send channel state information at asufficient rate to allow the transmitting entity to perform theappropriate spatial processing. The need for accurate interferenceinformation and channel state information renders spatial nulling ofinterference not practical for most MIMO systems.

There is therefore a need in the art for techniques to transmit data inthe presence of spatially colored interference and noise.

SUMMARY

In one embodiment, a method for transmitting data from a transmittingentity to a receiving entity in a wireless multiple-inputmultiple-output (MIMO) communication system is described in which datais processed to obtain a plurality of streams of data symbols fortransmission on a plurality of transmission channels in a MIMO channelbetween the transmitting entity and the receiving entity. Spatialspreading is performed on the plurality of streams of data symbols witha plurality of steering matrices to obtain a plurality of streams ofspread symbols, wherein the spatial spreading with the plurality ofsteering matrices randomizes the plurality of transmission channels forthe plurality of streams of data symbols. Spatial processing isperformed on the plurality of streams of spread symbols to obtain aplurality of streams of transmit symbols for transmission from aplurality of transmit antennas at the transmitting entity.

In another embodiment, an apparatus in a wireless multiple-inputmultiple-output (MIMO) communication system is described which includesa data processor to process data to obtain a plurality of streams ofdata symbols for transmission on a plurality of transmission channels ina MIMO channel between a transmitting entity and a receiving entity inthe MIMO system; a spatial spreader to perform spatial spreading on theplurality of streams of data symbols with a plurality of steeringmatrices to obtain a plurality of streams of spread symbols, wherein thespatial spreading with the plurality of steering matrices randomizes theplurality of transmission channels for the plurality of streams of datasymbols; and a spatial processor to perform spatial processing on theplurality of streams of spread symbols to obtain a plurality of streamsof transmit symbols for transmission from a plurality of transmitantennas at the transmitting entity.

In another embodiment, an apparatus in a wireless multiple-inputmultiple-output (MIMO) communication system is described which includesmeans for processing data to obtain a plurality of streams of datasymbols for transmission on a plurality of transmission channels in aMIMO channel between a transmitting entity and a receiving entity in theMIMO system; means for performing spatial spreading on the plurality ofstreams of data symbols with a plurality of steering matrices to obtaina plurality of streams of spread symbols, wherein the spatial spreadingwith the plurality of steering matrices randomizes the plurality oftransmission channels for the plurality of streams of data symbols; andmeans for performing spatial processing on the plurality of streams ofspread symbols to obtain a plurality of streams of transmit symbols fortransmission from a plurality of transmit antennas at the transmittingentity.

In another embodiment, a method for receiving a data transmission sentby a transmitting entity to a receiving entity in a wirelessmultiple-input multiple-output (MIMO) communication system is describedin which a plurality of streams of received symbols is obtained for aplurality of streams of data symbols transmitted via a plurality oftransmission channels in a MIMO channel, wherein the plurality ofstreams of data symbols are spatially spread with a plurality ofsteering matrices and further spatially processed prior to transmissionvia the MIMO channel, and wherein the spatial spreading with theplurality of steering matrices randomizes the plurality of transmissionchannels for the plurality of streams of data symbols. Receiver spatialprocessing is performed on the plurality of streams of received symbolsto obtain a plurality of streams of detected symbols. Spatialdespreading is performed on the plurality of streams of detected symbolswith the plurality of steering matrices to obtain a plurality of streamsof recovered symbols, which are estimates of the plurality of streams ofdata symbols.

In another embodiment, an apparatus in a wireless multiple-inputmultiple-output (MIMO) communication system is described which includesa plurality of receiver units to obtain a plurality of streams ofreceived symbols for a plurality of streams of data symbols transmittedvia a plurality of transmission channels in a MIMO channel from atransmitting entity to a receiving entity, wherein the plurality ofstreams of data symbols are spatially spread with a plurality ofsteering matrices and further spatially processed prior to transmissionvia the MIMO channel, and wherein the spatial spreading with theplurality of steering matrices randomizes the plurality of transmissionchannels for the plurality of streams of data symbols; a spatialprocessor to perform receiver spatial processing on the plurality ofstreams of received symbols to obtain a plurality of streams of detectedsymbols; and a spatial despreader to perform spatial despreading on theplurality of streams of detected symbols with the plurality of steeringmatrices to obtain a plurality of streams of recovered symbols, whichare estimates of the plurality of streams of data symbols.

In another embodiment, an apparatus in a wireless multiple-inputmultiple-output (MIMO) communication system is described which includesmeans for obtaining a plurality of streams of received symbols for aplurality of streams of data symbols transmitted via a plurality oftransmission channels in a MIMO channel from a transmitting entity to areceiving entity, wherein the plurality of streams of data symbols arespatially spread with a plurality of steering matrices and furtherspatially processed prior to transmission via the MIMO channel, andwherein the spatial spreading with the plurality of steering matricesrandomizes the plurality of transmission channels for the plurality ofstreams of data symbols; means for performing receiver spatialprocessing on the plurality of streams of received symbols to obtain aplurality of streams of detected symbols; and means for performingspatial despreading on the plurality of streams of detected symbols withthe plurality of steering matrices to obtain a plurality of streams ofrecovered symbols, which are estimates of the plurality of streams ofdata symbols.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a MIMO system with a transmitting entity, a receivingentity, and two interfering sources.

FIG. 2 shows a model for data transmission with spatial spreading.

FIG. 3 shows the processing performed by the transmitting entity.

FIG. 4 shows the processing performed by the receiving entity.

FIG. 5 shows a block diagram of the transmitting and receiving entities.

FIG. 6 shows a transmit (TX) data processor and a TX spatial processorat the transmitting entity.

FIG. 7 shows a receive (RX) spatial processor and an RX data processorat the receiving entity.

FIG. 8 shows an RX spatial processor and an RX data processor thatimplement a successive interference cancellation (SIC) technique.

DETAILED DESCRIPTION

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any embodiment described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments.

Techniques for transmitting data with spatial spreading insingle-carrier and multi-carrier MIMO systems are described herein.Spatial spreading refers to the transmission of a data symbol (which isa modulation symbol for data) on multiple eigenmodes or spatial channels(described below) of a MIMO channel simultaneously with a steeringvector. The spatial spreading randomizes a transmission channel observedby a stream of data symbols, which effectively whitens the transmitteddata symbol stream and can provide various benefits as described below.

For data transmission with spatial spreading, a transmitting entityprocesses (e.g., encodes, interleaves, and modulates) each data packetto obtain a corresponding block of data symbols and multiplexes datasymbol blocks onto N_(S) data symbol streams for transmission on N_(S)transmission channels in a MIMO channel. The transmitting entity thenspatially spreads the N_(S) data symbol streams with steering matricesto obtain N_(S) spread symbol streams. The transmitting entity furtherspatially processes the N_(S) spread symbol streams for either full-CSItransmission on N_(S) eigenmodes of the MIMO channel or partial-CSItransmission on N_(S) spatial channels of the MIMO channel, as describedbelow.

A receiving entity obtains N_(R) received symbol streams via N_(R)receive antennas and performs receiver spatial processing for full-CSIor partial-CSI transmission to obtain N_(S) detected symbol streams,which are estimates of the N_(S) spread symbol streams. The receivingentity further spatially despreads the N_(S) detected symbol streamswith the same steering matrices used by the transmitting entity andobtains N_(S) recovered symbol streams, which are estimates of the N_(S)data symbol streams. The receiver spatial processing and spatialdespreading may be performed jointly or separately. The receiving entitythen processes (e.g., demodulates, deinterleaves, and decodes) eachblock of recovered symbols in the N_(S) recovered symbol streams toobtain a corresponding decoded data packet.

The receiving entity may also estimate thesignal-to-noise-and-interference ratio (SNR) of each transmissionchannel used for data transmission and select a suitable rate for thetransmission channel based on its SNR. The same or different rates maybe selected for the N_(S) transmission channels. The transmitting entityencodes and modulates data for each transmission channel based on itsselected rate.

Various aspects and embodiments of the invention are described infurther detail below.

FIG. 1 shows a MIMO system 100 with a transmitting entity 110, areceiving entity 150, and two interfering sources 190 a and 190 b.Transmitting entity 110 transmits data to receiving entity 150 vialine-of-sight paths (as shown in FIG. 1) and/or reflected paths (notshown in FIG. 1). Interfering sources 190 a and 190 b transmit signalsthat act as interference at receiving entity 150. The interferenceobserved by receiving entity 150 from interfering sources 190 a and 190b may be spatially colored.

1. Single-Carrier MIMO System

For a single-carrier MIMO system, a MIMO channel formed by the N_(T)transmit antennas at the transmitting entity and the N_(R) receiveantennas at the receiving entity may be characterized by an N_(R)×N_(T)channel response matrix H, which may be expressed as:

$\begin{matrix}{{\underset{\_}{H} = \begin{bmatrix}h_{1,1} & h_{1,2} & \cdots & h_{1,N_{T}} \\h_{2,1} & h_{2,2} & \cdots & h_{2,N_{T}} \\\vdots & \vdots & ⋰ & \vdots \\h_{N_{R},1} & h_{N_{R},2} & \cdots & h_{N_{R},N_{T}}\end{bmatrix}},} & {{Eq}\mspace{14mu}(1)}\end{matrix}$where entry h_(i,j,) for i=1 . . . N_(R) and j=1 . . . N_(T), denotesthe coupling or complex channel gain between transmit antenna j andreceive antenna i.

Data may be transmitted in various manners in the MIMO system. For afull-CSI transmission scheme, data is transmitted on “eigenmodes” of theMIMO channel (described below). For a partial-CSI transmission scheme,data is transmitted on spatial channels of the MIMO channel (alsodescribed below).

A. Full-CSI Transmission

For the full-CSI transmission scheme, eigenvalue decomposition may beperformed on a correlation matrix of H to obtain N_(S) eigenmodes of H,as follows:R=H ^(H) ·H=E·Λ·E ^(H),  Eq (2)where R is an N_(T)×N_(T) correlation matrix of H;

-   -   E is an N_(T)×N_(T) unitary matrix whose columns are        eigenvectors of R;    -   Λ is an N_(T)×N_(T) diagonal matrix of eigenvalues of R; and    -   “^(H)” denotes a conjugate transpose.        A unitary matrix U is characterized by the property U ^(H)·U=I,        where I is the identity matrix. The columns of a unitary matrix        are orthogonal to one another.

The transmitting entity may perform spatial processing with theeigenvectors of R to transmit data on the N_(S) eigenmodes of H. Theeigenmodes may be viewed as orthogonal spatial channels obtained throughdecomposition. The diagonal entries of Λ are eigenvalues of R, whichrepresent the power gains for the N_(S) eigenmodes.

The transmitting entity performs spatial processing for full-CSItransmission as follows:x=E·s,  Eq (3)

-   -   where s is an N_(T)×1 vector with N_(S) non-zero entries for        N_(S) data symbols to be transmitted simultaneously on the N_(S)        spatial channels; and    -   x is an N_(T)×1 vector with N_(T) transmit symbols to be sent        from the N_(T) transmit antennas.

The received symbols at the receiving entity may be expressed as:r=H·x+j,  Eq (4)

-   -   where r is an N_(R)×1 vector with N_(R) received symbols        obtained via the N_(R) receive antennas; and    -   j is an N_(R)×1 vector of interference and noise observed at the        receiving entity.

The receiving entity performs spatial processing with an N_(T)×N_(R)spatial filter matrix M=Λ ⁻¹·E ^(H)·H ^(H) for full-CSI transmission, asfollows:

$\begin{matrix}\begin{matrix}{\hat{\underset{\_}{s}} = {\underset{\_}{M} \cdot \underset{\_}{r}}} \\{= {{\underset{\_}{\Lambda}}^{- 1} \cdot {\underset{\_}{E}}^{H} \cdot {\underset{\_}{H}}^{H} \cdot ( {{\underset{\_}{H} \cdot \underset{\_}{E} \cdot \underset{\_}{s}} + \underset{\_}{j}} )}} \\{= {{{\underset{\_}{\Lambda}}^{- 1} \cdot {\underset{\_}{E}}^{H} \cdot \underset{\_}{E} \cdot \underset{\_}{\Lambda} \cdot {\underset{\_}{E}}^{H} \cdot \underset{\_}{s}} + {{\underset{\_}{\Lambda}}^{- 1} \cdot {\underset{\_}{E}}^{H} \cdot {\underset{\_}{H}}^{H} \cdot \underset{\_}{j}}}} \\{= {\underset{\_}{s} + \overset{\sim}{\underset{\_}{j}}}}\end{matrix} & {{Eq}\mspace{14mu}(5)}\end{matrix}$

-   -   where ŝ is an N_(T)×1 vector with N_(S) recovered symbols or        data symbol estimates, which are estimates of the N_(S) data        symbols in s; and    -   {tilde over (j)}=Λ ⁻¹·E ^(H)·H ^(H)·j is the “post-detection”        interference and noise after the spatial processing at the        receiving entity.        An eigenmode may be viewed as an effective channel between an        element of s and a corresponding element of ŝ with the        transmitting and receiving entities performing the spatial        processing shown in equations (3) and (5), respectively. The        transmitting and receiving entities typically only have        estimates of the channel response matrix H, which may be        obtained based on pilot symbols. A pilot symbol is a modulation        symbol for pilot, which is data that is known a priori by both        the transmitting and receiving entities. For simplicity, the        description herein assumes no channel estimation error.

The vector j may be decomposed into an interference vector i and a noisevector n, as follows:j=i+n.  Eq (6)The noise may be characterized by an N_(R)×N_(R) autocovariance matrix φ_(nn)=E[n·n ^(H)], where E[x] is the expected value of x. If the noiseis additive white Gaussian noise (AWGN) with zero mean and a variance ofσ_(n) ², then the noise autocovariance matrix may be expressed as: φ_(nn)=σ_(n) ²·I. Similarly, the interference may be characterized by anN_(R)×N_(R) autocovariance matrix φ _(ii)=E[i·i ^(H)]. Theautocovariance matrix of j may be expressed as φ _(jj)=E[j·j ^(H)]=φ_(nn)+φ _(ii), assuming the interference and noise are uncorrelated.

The interference and noise are considered to be spatially white if theirautocovariance matrices are of the form σ²·I due to the noise andinterference being uncorrelated. For spatially white interference andnoise, each receive antenna observes the same amount of interference andnoise, and the interference and noise observed at each receive antennaare uncorrelated with the interference and noise observed at all otherreceive antennas. For spatially colored interference and noise, theautocovariance matrices have non-zero off-diagonal terms due tocorrelation between the interference and noise observed at differentreceive antennas. In this case, each receive antenna i may observe adifferent amount of interference and noise, which is equal to the sum ofthe N_(R) elements in the i-th row of the matrix φ _(jj).

If the interference and noise are spatially colored, then the optimaleigenvectors for full-CSI transmission may be derived as:R _(opt) =H ^(H)·φ _(jj) ⁻¹ ·H=E _(opt) ·Λ·E _(opt) ^(H).  Eq (7)The eigenvectors E _(opt) steer the data transmission in the directionof the receiving entity and further place beam nulls in the direction ofthe interference. However, the transmitting entity would need to beprovided with the autocovariance matrix φ _(jj) in order to derive theeigenvectors E _(opt). The matrix φ _(jj) is based on the interferenceand noise observed at the receiving entity and can only be determined bythe receiving entity. To spatially null the interference, the receivingentity would need to send this matrix, or its equivalent, back to thetransmitting entity, which can represent a large amount of channel stateinformation to send back.

Spatial spreading may be used to spatially whiten the interference andnoise observed by the receiving entity and may potentially improveperformance. The transmitting entity performs spatial spreading with anensemble of steering matrices such that the complementary spatialdespreading at the receiving entity spatially whitens the interferenceand noise.

For full-CSI transmission with spatial spreading, the transmittingentity performs processing as follows:x _(fcsi)(m)= E (m)· V (m)· s (m),  Eq (8)where s(m) is a data symbol vector for transmission span m;

-   -   V(m) is an N_(T)×N_(T) steering matrix for transmission span m;    -   E(m) is a matrix of eigenvectors for transmission span m; and    -   x _(fcsi)(m) is a transmit symbol vector for transmission span        m.        A transmission span may cover time and/or frequency dimensions.        For example, in a single-carrier MIMO system, a transmission        span may correspond to one symbol period, which is the time        duration to transmit one data symbol. A transmission span may        also cover multiple symbol periods. As shown in equation (8),        each data symbol in s(m) is spatially spread with a respective        column of V(m) to obtain N_(T) spread symbols, which may then be        transmitted on all eigenmodes of H(m).

The received symbols at the receiving entity may be expressed as:r _(fcsi)(m)= H (m)· x _(fcsi)(m)+ j (m)= H (m)· E (m)· V (m)· s (m)+ j(m).  Eq (9)The receiving entity derives a spatial filter matrix M _(fcsi)(m) asfollows:M _(fcsi)(m)=Λ ⁻¹(m)· E ^(H)(m) · H ^(H)(m)  Eq (10)

The receiving entity performs receiver spatial processing and spatialdespreading using M _(fcsi)(m) and V ^(H)(m), respectively, as follows:

$\begin{matrix}\begin{matrix}{{{{\hat{\underset{\_}{s}}}_{fesi}(m)} = {{{\underset{\_}{V}}^{H}(m)} \cdot {{\underset{\_}{M}}_{fesi}(m)} \cdot {{\underset{\_}{r}}_{fesi}(m)}}},} \\{= {{{\underset{\_}{V}}^{H}(m)} \cdot {{\underset{\_}{\Lambda}}^{- 1}(m)} \cdot {{\underset{\_}{E}}^{H}(m)} \cdot {{\underset{\_}{H}}^{H}(m)} \cdot}} \\{\lbrack {{{\underset{\_}{H}(m)} \cdot {\underset{\_}{E}(m)} \cdot {\underset{\_}{V}(m)} \cdot {\underset{\_}{s}(m)}} + {\underset{\_}{j}(m)}} \rbrack,} \\{{= {{\underset{\_}{s}(m)} + {\underset{\_}{j}(m)}}},}\end{matrix} & {{Eq}\mspace{14mu}(11)}\end{matrix}$where j _(fcsi)(m) is the “post-detection” interference and noise afterthe spatial processing and spatial despreading at the receiving entity,which is:j _(fcsi)(m)= V ^(H)(m)·Λ ⁻¹(m)· E ^(H)(m)· H ^(H)(m)· j (m).  Eq (12)

As shown in equation (12), the received interference and noise in j(m)are transformed by the conjugate transposes of V(m), E(m), and H(m).E(m) is a matrix of eigenvectors that may not be optimally computed forspatially colored interference and noise if the autocovariance matrix φ_(jj)(m) is not known, which is often the case. The transmitting andreceiving entities may, by random chance, operate with a matrix E(m)that results in more interference and noise being observed by thereceiving entity. This may be the case, for example, if a mode of E(m)is correlated with the interference. If the MIMO channel is static, thenthe transmitting and receiving entities may continually operate with amatrix E(m) that provides poor performance. The spatial despreading withthe steering matrix V(m) spatially whitens the interference and noise.The effectiveness of the interference and noise whitening is dependenton the characteristics of the channel response matrix H(m) and theinterference j(m). If a high degree of correlation exists between thedesired signal and the interference, then this limits the amount of gainprovided by the whitening of the interference and noise.

The SNR of each eigenmode with full-CSI transmission may be expressedas:

$\begin{matrix}{{{\gamma_{{fesi},l}(k)} = \frac{{P_{l}(m)}{\lambda_{l}(m)}}{\sigma_{j}^{2}}},\mspace{14mu}{{{for}\mspace{14mu} l} = {1\mspace{11mu}\ldots\mspace{11mu} N_{S}}},} & {{Eq}\mspace{14mu}(13)}\end{matrix}$

-   -   where P_(l)(m) is the transmit power used for the transmit        symbol sent on eigenmode l in transmission span m;    -   λ_(l)(m) is the eigenvalue for eigenmode l in transmission span        m, which is the l-th diagonal element of Λ(m);    -   σ_(j) ² is the variance of the received interference and noise;        and    -   γ_(fcsi,l)(m) is the SNR of eigenmode l in transmission span m.

B. Partial-CSI Transmission

For partial-CSI transmission with spatial spreading, the transmittingentity performs processing as follows:x _(pcsi)(m)= V (m)· s (m)  Eq (14)where x _(pcsi)(m) is the transmit data vector for transmission span m.As shown in equation (14), each data symbol in s(m) is spatially spreadwith a respective column of V(m) to obtain N_(T) spread symbols, whichmay then be transmitted from all N_(T) transmit antennas.

The received symbols at the receiving entity may be expressed as:r _(pcsi)(m)= H (m)· V (m)· s (m)+ j (m)= H _(eff)(m)· s (m)+ j (m),  Eq(15)where r _(pcsi)(m) is the received symbol vector for transmission spanm; and

-   -   H _(eff)(m) is an effective channel response matrix, which is:        H _(eff)(m)= H (m)· V (m).  Eq (16)

The receiving entity may derive estimates of the transmitted datasymbols in s using various receiver processing techniques. Thesetechniques include a channel correlation matrix inversion (CCMI)technique (which is also commonly referred to as a zero-forcingtechnique), a minimum mean square error (MMSE) technique, a successiveinterference cancellation (SIC) technique, and so on. The receivingentity may perform receiver spatial processing and spatial despreadingjointly or separately, as described below. In the following description,one data symbol stream is sent for each element of the data symbolvector s.

For the CCMI technique, the receiving entity may derive a spatial filtermatrix M _(ccmi)(m), as follows:M _(ccmi)(m)=[ H _(eff) ^(H)(m)]¹ ·H _(eff)(m) ⁻¹ ·H _(eff) ^(H)(m)= R_(eff) ⁻¹(m)· H _(eff) ^(H)(m).  Eq (17)The receiving entity may then perform CCMI spatial processing anddespreading jointly, as follows:

$\begin{matrix}\begin{matrix}{{{{\hat{\underset{\_}{s}}}_{ccmi}(m)} = {{{\underset{\_}{M}}_{ccmi}(m)} \cdot {{\underset{\_}{r}}_{pesi}(m)}}},} \\{{= {{{\underset{\_}{R}}_{eff}^{- 1}(m)} \cdot {{\underset{\_}{H}}_{eff}^{H}(m)} \cdot \lbrack {{{{\underset{\_}{H}}_{eff}(m)} \cdot {\underset{\_}{s}(m)}} + {\underset{\_}{j}(m)}} \rbrack}},} \\{{= {{\underset{\_}{s}(m)} + {{\underset{\_}{j}}_{ccmi}(m)}}},}\end{matrix} & {{Eq}\mspace{14mu}(18)}\end{matrix}$

-   -   where j _(ccmi)(m) is the CCMI filtered and despread        interference and noise, which is:        j _(ccmi)(m)= R _(eff) ⁻¹(m)· H _(eff) ^(H)(m) · j (m)= V        ^(H)(m)· R ⁻¹(m)·H ^(H)(m)· j (m).  Eq (19)        As shown in equation (19), the interference and noise j(m) is        whitened by V ^(H) (m). However, due to the structure of R(m),        the CCMI technique may amplify the interference and noise.

The receiving entity may also perform CCMI spatial processing andspatial despreading separately, as follows:

$\begin{matrix}\begin{matrix}{{{{\hat{\underset{\_}{s}}}_{ccmi}(m)} = {{{\underset{\_}{V}}^{H}(m)} \cdot {{\overset{\sim}{\underset{\_}{M}}}_{ccmi}(m)} \cdot {{\underset{\_}{r}}_{pesi}(m)}}},} \\{= {{{\underset{\_}{V}}^{H}(m)} \cdot {{\underset{\_}{R}}^{- 1}(m)} \cdot {{\underset{\_}{H}}^{H}(m)} \cdot}} \\{\lbrack {{\underset{\_}{H}{(m) \cdot {\underset{\_}{V}(m)} \cdot {\underset{\_}{s}(m)}}} + {\underset{\_}{j}(m)}} \rbrack,} \\{{= {{\underset{\_}{s}(m)} + {{\underset{\_}{j}}_{ccmi}(m)}}},}\end{matrix} & {{Eq}\mspace{14mu}(20)}\end{matrix}$where {tilde over (M)}_(ccmi)(m)=R ⁻¹(m)·H ^(H) (m). In any case, aspatial channel may be viewed as an effective channel between an elementof s and a corresponding element of ŝ with the transmitting entityperforming spatial processing with the identity matrix I and thereceiving entity performing the appropriate receiver spatial processingto estimate s.

The SNR for the CCMI technique may be expressed as:

$\begin{matrix}{{{\gamma_{{ccmi},l}(m)} = \frac{P_{l}(m)}{{r_{ll}(m)}\sigma_{j}^{2}}},\mspace{14mu}{{{for}\mspace{14mu} l} = {1\mspace{14mu}\ldots\mspace{11mu} N_{S}}},} & {{Eq}\mspace{14mu}(21)}\end{matrix}$

-   -   where P_(l)(m) is the power used for data symbol stream {s_(l)}        in transmission span m;    -   r_(ll)(m) is the l-th diagonal element of R _(eff) ⁻¹(m);    -   σ_(j) ² is the variance of the received interference and noise;        and    -   γ_(ccmi,l)(m) is the SNR of data symbol stream {s_(l)} in        transmission span m.        The quantity P_(l)(m)/σ_(j) ² is the SNR of data symbol stream        {s_(l)} at the receiving entity prior to the receiver spatial        processing and is commonly referred to as the received SNR. The        quantity γ_(ccmi,l)(m) is the SNR of data symbol stream {s_(l)}        after the receiver spatial processing and is also referred to as        the post-detection SNR. In the following description, “SNR”        refers to post-detection SNR unless noted otherwise.

For the MMSE technique, the receiving entity may derive a spatial filtermatrix M _(mmse)(m), as follows:M _(mmse)(m)=[ H _(eff) ^(H)(m)· H _(eff)(m)+φ _(jj)(m)]⁻¹ ·H _(eff)^(H)(m).  Eq (22)The spatial filter matrix M _(mmse)(m) minimizes the mean square errorbetween the symbol estimates from the spatial filter and the datasymbols. If the autocovariance matrix φ _(jj)(m) is not known, which isoften the case, then the spatial filter matrix M _(mmse)(m) may beapproximated as:M _(mmse)(m)=[ H _(eff) ^(H)(m)· H _(eff)(m)+σ_(j) ² ·I] ⁻¹ ·H _(eff)^(H)(m).  Eq (23)

The receiving entity may perform MMSE spatial processing and despreadingjointly, as follows:

$\begin{matrix}\begin{matrix}{{{{\hat{\underset{\_}{s}}}_{mmse}(m)} = {{{\underset{\_}{D}}_{Q}(m)} \cdot {{\underset{\_}{M}}_{mmse}(m)} \cdot {{\underset{\_}{r}}_{pesi}(m)}}},} \\{{= {{{\underset{\_}{D}}_{Q}(m)} \cdot {{\underset{\_}{M}}_{mmse}(m)} \cdot \lbrack {{{{\underset{\_}{H}}_{eff}(m)} \cdot {\underset{\_}{s}(m)}} + {\underset{\_}{j}(m)}} \rbrack}},} \\{{= {{{{\underset{\_}{D}}_{Q}(m)} \cdot {\underset{\_}{Q}(m)} \cdot {\underset{\_}{s}(m)}} + {{\underset{\_}{j}}_{mmse}(m)}}},}\end{matrix} & {{Eq}\mspace{14mu}(24)}\end{matrix}$where Q(m)=M _(mmse)(m)·H _(eff)(m);

-   -   D _(Q)(m) is a diagonal matrix whose diagonal elements are the        diagonal elements of Q ⁻¹(m), or D _(Q)(m)=[diag[Q(m)]]⁻¹; and    -   j _(mmse)(m) is the MMSE filtered and despread interference and        noise, which is:

$\begin{matrix}\begin{matrix}{{{{\underset{\_}{j}}_{mmse}(m)} = {{{\underset{\_}{D}}_{Q}(m)} \cdot {{\underset{\_}{M}}_{mmse}(m)} \cdot {\underset{\_}{j}(m)}}},} \\{= {{{\underset{\_}{D}}_{Q}(m)} \cdot \lbrack {{{{\underset{\_}{H}}_{eff}^{H}(m)} \cdot {{\underset{\_}{H}}_{eff}(m)}} + {\underset{\_}{\varphi}}_{ji}} \rbrack^{- 1} \cdot}} \\{{{\underset{\_}{H}}_{eff}^{H}(m)} \cdot {{\underset{\_}{j}(m)}.}}\end{matrix} & {{{Eq}\mspace{14mu}(25)}\;}\end{matrix}$The symbol estimates from the spatial filter matrix M _(mmse)(m) areunnormalized estimates of the data symbols. The multiplication with D_(Q)(m) provides normalized estimates of the data symbols. The receivingentity may also perform MMSE spatial processing and spatial despreadingseparately, similar to that described above for the CCMI technique.

The SNR for the MMSE technique may be expressed as:

$\begin{matrix}{{{\gamma_{{mmse},l}(m)} = \frac{q_{ll}(m)}{1 - {q_{ll}(m)}}},\mspace{14mu}{{{for}\mspace{14mu} l} = {1\mspace{14mu}\ldots\mspace{11mu} N_{S}}},} & {{Eq}\mspace{14mu}(26)}\end{matrix}$

-   -   where q_(ll)(m) is the l-th diagonal element of Q(m); and    -   γ_(mmse,l)(m) is the SNR of data symbol stream {s_(l)} in        transmission span m.

For the SIC technique, the receiving entity processes the N_(R) receivedsymbol streams in N_(S) successive stages to recover the N_(S) datasymbol streams. For each stage l, the receiving entity performs spatialprocessing and despreading on either the N_(R) received symbol streamsor N_(R) modified symbol streams from the preceding stage (e.g., usingthe CCMI, MMSE, or some other technique) to obtain one recovered symbolstream {ŝ_(l)}. The receiving entity then processes (e.g., demodulates,deinterleaves, and decodes) this recovered symbol stream to obtain acorresponding decoded data stream {{circumflex over (d)}_(l)}. Thereceiving entity next estimates the interference this stream causes tothe other data symbol streams not yet recovered. To estimate theinterference, the receiving entity re-encodes, interleaves, and symbolmaps the decoded data stream in the same manner performed at thetransmitting entity for this stream and obtains a stream of“remodulated” symbols {{hacek over (s)}_(l)}, which is an estimate ofthe data symbol stream just recovered. The receiving entity thenspatially spreads the remodulated symbol stream with the steering matrixV(m) and further multiplies the result with the channel response matrixH(m) for each transmission span of interest to obtain N_(R) interferencecomponents caused by this stream. The N_(R) interference components arethen subtracted from the N_(R) modified or received symbol streams forthe current stage to obtain N_(R) modified symbol streams for the nextstage. The receiving entity then repeats the same processing on theN_(R) modified symbol streams to recover another data stream.

For the SIC technique, the SNR of each data symbol stream is dependenton (1) the spatial processing technique (e.g., CCMI or MMSE) used foreach stage, (2) the specific stage in which the data symbol stream isrecovered, and (3) the amount of interference due to the data symbolstreams not yet recovered. In general, the SNR progressively improvesfor data symbol streams recovered in later stages because theinterference from data symbol streams recovered in prior stages iscanceled. This then allows higher rates to be used for data symbolstreams recovered in later stages.

C. System Model

FIG. 2 shows a model for data transmission with spatial spreading.Transmitting entity 110 performs spatial spreading (block 220) andspatial processing for full-CSI or partial-CSI transmission (block 230).Receiving entity 150 performs receiver spatial processing for full-CSIor partial-CSI transmission (block 260) and spatial despreading (block270). The description below makes references to the vectors shown inFIG. 2.

FIG. 3 shows a process 300 performed by the transmitting entity totransmit data with spatial spreading in the MIMO system. Thetransmitting entity processes (e.g., encodes and interleaves) eachpacket of data to obtain a corresponding block of coded data, which isalso called a code block or a coded data packet (block 312). Each codeblock is encoded separately at the transmitting entity and decodedseparately at the receiving entity. The transmitting entity furthersymbol maps each code block to obtain a corresponding block of datasymbols (also block 312). The transmitting entity multiplexes all datasymbol blocks generated for all data packets onto N_(S) data symbolstreams (denoted by vector s) (block 314). Each data symbol stream issent on a respective transmission channel. The transmitting entityspatially spreads the N_(S) data symbol streams with steering matricesand obtains N_(S) spread symbol streams (denoted by a vector w in FIG.2) (block 316). The spatial spreading is such that each data symbolblock is spatially spread with multiple (N_(M)) steering matrices torandomize the transmission channel observed by the block. Therandomization of the transmission channel results from using differentsteering matrices and not necessarily from randomness in the elements ofthe steering matrices. The transmitting entity further performs spatialprocessing on the N_(S) spread symbol streams for full-CSI orpartial-CSI transmission, as described above, and obtains N_(T) transmitsymbol streams (denoted by vector x) (block 318). The transmittingentity then conditions and sends the N_(T) transmit symbol streams viathe N_(T) transmit antennas to the receiving entity (block 320).

FIG. 4 shows a process 400 performed by the receiving entity to receivedata transmitted with spatial spreading in the MIMO system. Thereceiving entity obtains N_(R) received symbol streams (denoted byvector r) via the N_(R) receive antennas (block 412). The receivingentity estimates the response of the MIMO channel (block 414), performsspatial processing for full-CSI or partial-CSI transmission based on theMIMO channel estimate, and obtains N_(S) detected symbol streams(denoted by a vector ŵ in FIG. 2) (block 416). The receiving entityfurther spatially despreads the N_(S) detected symbol streams with thesame steering matrices used by the transmitting entity and obtains N_(S)recovered symbol streams (denoted by vector ŝ) (block 418). The receiverspatial processing and spatial despreading may be performed jointly orseparately, as described above. The receiving entity then processes(e.g., demodulates deinterleaves, and decodes) each block of recoveredsymbols in the N_(S) recovered symbol streams to obtain a correspondingdecoded data packet (block 420). The receiving entity may also estimatethe SNR of each transmission channel used for data transmission andselect a suitable rate for the transmission channel based on its SNR(block 422). The same or different rates may be selected for the N_(S)transmission channels.

Referring back to FIG. 2, the N_(S) data symbol streams are sent onN_(S) transmission channels of the MIMO channel. Each transmissionchannel is an effective channel observed by a data symbol stream betweenan element of the vector s at the transmitting entity and acorresponding element of the vector ŝ at the receiving entity (e.g., thel-th transmission channel is the effective channel between the l-thelement of s and the l-th element of ŝ). The spatial spreadingrandomizes the N_(S) transmission channels. The N_(S) spread symbolstreams are sent on either the N_(S) eigenmodes of the MIMO channel forfull-CSI transmission or the N_(S) spatial channels of the MIMO channelfor partial-CSI transmission.

D. Spatial Spreading

The steering matrices used for spatial spreading may be generated invarious manners, as described below. In one embodiment, a set of Lsteering matrices is generated and denoted as {V}, or V(i) for i=1 . . .L, where L may be any integer greater than one. These steering matricesare unitary matrices having orthogonal columns. Steering matrices fromthis set are selected and used for spatial spreading.

The spatial spreading may be performed in various manners. In general,it is desirable to use as many different steering matrices as possiblefor each data symbol block so that the interference and noise arerandomized across the block. Each data symbol block is transmitted inN_(M) transmission spans, where N_(M)>1, and N_(M) is also referred toas the block length. One steering matrix in the set may be used for eachtransmission span. The transmitting and receiving entities may besynchronized such that both entities know which steering matrix to usefor each transmission span. With spatial spreading, the receiving entityobserves a distribution of interference and noise across each datasymbol block even if the MIMO channel is constant across the entireblock. This avoids the case in which high levels of interference andnoise are received because the transmitting and receiving entitiescontinually use a bad matrix of eigenvectors or the receiving entitycontinually observes colored interference.

The L steering matrices in the set may be selected for use in variousmanners. In one embodiment, the steering matrices are selected from theset in a deterministic manner. For example, the L steering matrices maybe cycled through and selected in sequential order, starting with thefirst steering matrix V(1), then the second steering matrix V(2), and soon, and then the last steering matrix V(L). In another embodiment, thesteering matrices are selected from the set in a pseudo-random manner.For example, the steering matrix to use for each transmission span m maybe selected based on a function ƒ(m) that pseudo-randomly selects one ofthe L steering matrices, or steering matrix V(ƒ(m)). In yet anotherembodiment, the steering matrices are selected from the set in a“permutated” manner. For example, the L steering matrices may be cycledthrough and selected for use in sequential order. However, the startingsteering matrix for each cycle may be selected in a pseudo-randommanner, instead of always being the first steering matrix V(1). The Lsteering matrices may also be selected in other manners, and this iswithin the scope of the invention.

The steering matrix selection may also be dependent on the number ofsteering matrices (L) in the set and the block length (N_(M)). Ingeneral, the number of steering matrices may be greater than, equal to,or less than the block length. Steering matrix selection for these threecases may be performed as described below.

If L=N_(M), then the number of steering matrices matches the blocklength. In this case, a different steering matrix may be selected foreach of the N_(M) transmission spans used to send each data symbolblock. The N_(M) steering matrices for the N_(M) transmission spans maybe selected in a deterministic, pseudo-random, or permutated manner, asdescribed above.

If L<N_(M), then the block length is longer than the number of steeringmatrices in the set. In this case, the steering matrices are reused foreach data symbol block and may be selected as described above.

If L>N_(M), then a subset of the steering matrices is used for each datasymbol block. The selection of the specific subset to use for each datasymbol block may be deterministic or pseudo-random. For example, thefirst steering matrix to use for the current data symbol block may bethe steering matrix after the last one used for a prior data symbolblock.

As noted above, a transmission span may cover one or multiple symbolperiods and/or one or multiple subbands. For improved performance, it isdesirable to select the transmission span to be as small as possible sothat (1) more steering matrices can be used for each data symbol blockand (2) each receiving entity can obtain as many “looks” of the MIMOchannel as possible for each data symbol block. The transmission spanshould also be shorter than the coherence time of the MIMO channel,which is the time duration over which the MIMO channel can be assumed tobe approximately static. Similarly, the transmission span should besmaller than the coherence bandwidth of the MIMO channel for a widebandsystem (e.g., an OFDM system).

E. Applications for Spatial Spreading

Spatial spreading may be used to randomize and whiten spatially coloredinterference and noise for both full-CSI and partial-CSI transmission,as described above. This may improve performance for certain channelconditions.

Spatial spreading may also be used to reduce outage probability undercertain operating scenarios. As an example, a block of data symbols fora code block may be partitioned into N_(T) data symbol subblocks. Eachdata symbol subblock may be coded and modulated based on the SNRexpected for the subblock. Each data symbol subblock may be transmittedas one element of the data symbol vector s, and the N_(T) data symbolsubblocks may be transmitted in parallel. An outage may then occur ifany one of the N_(T) data symbol subblocks cannot be decoded error freeby the receiving entity.

If partial-CSI transmission without spatial spreading is used for theN_(T) data symbol subblocks, then each subblock is transmitted from arespective transmit antenna. Each data symbol subblock would thenobserve the SNR achieved for the spatial channel corresponding to itstransmit antenna. The receiving entity can estimate the SNR of eachspatial channel, select an appropriate rate for each spatial channelbased on its SNR, and provide the rates for all N_(T) spatial channelsto the transmitting entity. The transmitting entity can then encode andmodulate the N_(T) data symbol subblocks based on their selected rates.

The MIMO channel may change between time n when the rates are selectedto time n+τ when the rates are actually used. This may be the case, forexample, if the receiving entity has moved to a new location, if theMIMO channel changes faster than the feedback rate, and so on. The newchannel response matrix H ₁ at time n+τ may have the same capacity asthe prior channel response matrix H ₀ at time n, which may be expressedas:

$\begin{matrix}\begin{matrix}{{{Cap}\mspace{11mu}( {\underset{\_}{H}}_{0} )} = {\sum\limits_{i = 1}^{N_{T}}{\log_{2}( {1 + {\gamma_{i}(n)}} )}}} \\{= {\sum\limits_{i = 1}^{N_{T}}{\log_{2}( {1 + {\gamma_{i}( {n + \tau} )}} )}}} \\{{= {{Cap}\mspace{11mu}( {\underset{\_}{H}}_{1} )}},}\end{matrix} & {{Eq}\mspace{14mu}(27)}\end{matrix}$where γ_(i)(n) is the SNR of spatial channel i at time n andlog₂(1+γ_(i)(n)) is the capacity of spatial channel i at time n. Even ifthe capacities of H ₀ and H ₁ are the same, the capacities of theindividual spatial channels may have changed between time n and timen+τ, so that γ_(i)(n) may not be equal to γ_(i)(n+τ).

Without spatial spreading, the outage probability increases ifγ_(i)(n)<γ_(i)(n+τ) for any spatial channel i. This is because a datasymbol subblock sent on a spatial channel with a lower SNR is lesslikely to be decoded error free, and any data symbol subblock decoded inerror corrupts the entire data symbol block under the above assumption.

If partial-CSI transmission with spatial spreading is used for the N_(T)data symbol subblocks, then each subblock is spatially spread andtransmitted from all N_(T) transmit antennas. Each data symbol subblockwould then be transmitted on a transmission channel formed by acombination of N_(T) spatial channels of the MIMO channel and wouldobserve an effective SNR that is a combination of the SNRs for thesespatial channels. The transmission channel for each data symbol subblockis determined by the steering matrices used for spatial spreading. If asufficient number of steering matrices is used to spatially spread theN_(T) data symbol subblocks, then the effective SNR observed by eachdata symbol subblock will be approximately equal to the average SNR forall of the spatial channels when a powerful error correction code isemployed. With spatial spreading, the outage probability may then bedependent on the average SNR of the spatial channels instead of the SNRsof the individual spatial channels. Thus, if the average SNR at time n+τis approximately equal to the average SNR at time n, then the outageprobability may be approximately the same even though the SNRs of theindividual spatial channels may have changed between times n and n+τ.

Spatial spreading can thus improve performance for the case in whichinaccurate partial CSI is available at the transmitting entity and/orreceiving entity. The inaccurate partial CSI may result from mobility,inadequate feedback rate, and so on.

2. Multi-Carrier MIMO System

Spatial spreading may also be used for a multi-carrier MIMO system.Multiple carriers may be provided by orthogonal frequency divisionmultiplexing (OFDM) or some other constructs. OFDM effectivelypartitions the overall system bandwidth into multiple (N_(F)) orthogonalfrequency subbands, which are also referred to as tones, subcarriers,bins, and frequency channels. With OFDM, each subband is associated witha respective subcarrier that may be modulated with data. For anOFDM-based system, spatial spreading may be performed on each of thesubbands used for data transmission.

For a MIMO system that utilizes OFDM (i.e., a MIMO-OFDM system), onedata symbol vector s(k,n) may be formed for each subband k in each OFDMsymbol period n. Vector s(k,n) contains up to N_(S) data symbols to besent via the N_(S) eigenmodes or spatial channels of subband k in OFDMsymbol period n. Up to N_(F) vectors, s(k,n) for k=1 . . . N_(F), may betransmitted concurrently on the N_(F) subbands in one OFDM symbolperiod. For the MIMO-OFDM system, a transmission span can cover bothtime and frequency dimensions. The index m for transmission span maythus be substituted with k,n for subband k and OFDM symbol period n. Atransmission span may cover one subband in one OFDM symbol period ormultiple OFDM symbol periods and/or multiple subbands.

For the full-CSI transmission scheme, the channel response matrix H(k)for each subband k may be decomposed to obtain the N_(S) eigenmodes ofthat subband. The eigenvalues in each diagonal matrix Λ(k), for k=1 . .. N_(F), may be ordered such that the first column contains the largesteigenvalue, the second column contains the next largest eigenvalue, andso on, or λ₁(k)≧λ₂(k)≧ . . . ≧λ_(N) _(S) (k), where λ_(l)(k) is theeigenvalue in the l-th column of Λ(k) after the ordering. When theeigenvalues for each matrix H(k) are ordered, the eigenvectors (orcolumns) of the associated matrix E(k) for that subband are also orderedcorrespondingly. A “wideband” eigenmode may be defined as the set ofsame-order eigenmodes of all N_(F) subbands after the ordering (e.g.,the l-th wideband eigenmode includes the l-th eigenmode of allsubbands). Each wideband eigenmode is associated with a respective setof N_(F) eigenvectors for the N_(F) subbands. The principle widebandeigenmode is the one associated with the largest eigenvalue in eachmatrix Λ(k) after the ordering. Data may be transmitted on the N_(S)wideband eigenmodes.

For the partial-CSI transmission scheme, the transmitting entity mayperform spatial spreading and spatial processing for each subband, andthe receiving entity may perform receiver spatial processing and spatialdespreading for each subband.

Each data symbol block may be transmitted in various manners in theMIMO-OFDM system. For example, each data symbol block may be transmittedas one entry of the vector s(k,n) for each of the N_(F) subbands. Inthis case, each data symbol block is sent on all N_(F) subbands andachieves frequency diversity in combination with spatial diversityprovided by spatial spreading. Each data symbol block may also span oneor multiple OFDM symbol periods. Each data symbol block may thus spanfrequency and/or time dimensions (by system design) plus spatialdimension (with spatial spreading).

The steering matrices may also be selected in various manners for theMIMO-OFDM system. The steering matrices for the subbands may be selectedin a deterministic, pseudo-random, or permutated manner, as describedabove. For example, the L steering matrices in the set may be cycledthrough and selected in sequential order for subbands 1 through N_(F) inOFDM symbol period n, then subbands 1 through N_(F) in OFDM symbolperiod n+1, and so on. The number of steering matrices in the set may beless than, equal to, or greater than the number of subbands. The threecases described above for L=N_(M), L<N_(M), and L>N_(M) may also beapplied for the subbands, with N_(M) being replaced with N_(F).

3. MIMO System

FIG. 5 shows a block diagram of transmitting entity 110 and receivingentity 150. At transmitting entity 110, a TX data processor 520 receivesand processes (e.g., encodes, interleaves, and modulates) data andprovides data symbols. A TX spatial processor 530 receives the datasymbols, performs spatial spreading and spatial processing for full-CSIor partial-CSI transmission, multiplexes in pilot symbols, and providesN_(T) transmit symbol streams to N_(T) transmitter units (TMTR) 532 athrough 532 t. Each transmitter unit 532 performs OFDM modulation (ifapplicable) and further conditions (e.g., converts to analog, filters,amplifies, and frequency upconverts) a respective transmit symbol streamto generate a modulated signal. N_(T) transmitter units 532 a through532 t provide N_(T) modulated signals for transmission from N_(T)antennas 534 a through 534 t, respectively.

At receiving entity 150, N_(R) antennas 552 a through 552 r receive theN_(T) transmitted signals, and each antenna 552 provides a receivedsignal to a respective receiver unit (RCVR) 554. Each receiver unit 554performs processing complementary to that performed by transmitter unit532 (including OFDM demodulation, if applicable) and provides (1)received data symbols to an RX spatial processor 560 and (2) receivedpilot symbols to a channel estimator 584 within a controller 580. RXspatial processor 560 performs receiver spatial processing and spatialdespreading on N_(R) received symbol streams from N_(R) receiver units554 with spatial filter matrices and steering matrices, respectively,from controller 580 and provides N_(S) recovered symbol streams. An RXdata processor 570 then processes (e.g., demaps, deinterleaves, anddecodes) the recovered symbols and provides decoded data.

Channel estimator 584 may derive Ĥ(m), which is an estimate of thechannel response matrix H(m), based on pilot symbols transmitted withoutspatial spreading. Alternatively, channel estimator 584 may directlyderive Ĥ _(eff)(m), which is an estimate of the effective channelresponse matrix H _(eff)(m), based on pilot symbols transmitted withspatial spreading. In any case, Ĥ(m) or Ĥ _(eff)(m) may be used toderive the spatial filter matrix. Channel estimator 584 furtherestimates the SNR of each transmission channel based on received pilotsymbols and/or received data symbols. The MIMO channel includes N_(S)transmission channels for each subband, but these transmission channelscan be different depending on (1) whether full-CSI or partial-CSItransmission is used, (2) whether or not spatial spreading wasperformed, and (3) the specific spatial processing technique used by thereceiving entity. Controller 580 selects a suitable rate for eachtransmission channel based on its SNR. Each selected rate is associatedwith a particular coding scheme and a particular modulation scheme,which collectively determine a data rate. The same or different ratesmay be selected for the N_(S) transmission channels.

The rates for all transmission channels, other information, and trafficdata are processed (e.g., encoded and modulated) by a TX data processor590, spatially processed (if needed) by a TX spatial processor 592,conditioned by transmitter units 554 a through 554 r, and sent viaantennas 552 a through 552 r. At transmitting entity 110, the N_(R)signals sent by receiving entity 150 are received by antennas 534 _(a)through 534 _(t), conditioned by receiver units 532 _(a) through 532_(t), spatially processed by an RX spatial processor 544, and furtherprocessed (e.g., demodulated and decoded) by an RX data processor 546 torecover the selected rates. Controller 540 may then direct TX dataprocessor 520 to process data for each transmission channel based on therate selected for that transmission channel.

Controllers 540 and 580 also control the operation of various processingunits at transmitting entity 110 and receiving entity 150, respectively.Memory units 542 and 582 store data and/or program code used bycontrollers 540 and 580, respectively.

FIG. 6 shows a block diagram of an embodiment of TX data processor 520and TX spatial processor 530 at transmitting entity 110. For thisembodiment, TX data processor 520 includes N_(D) TX data streamprocessors 620 a through 620 nd for N_(D) data streams {d_(l)}, for l=1. . . N_(D), where in general N_(D)≧1.

Within each TX data stream processor 620, an encoder 622 receives andencodes its data stream {d_(l)} based on a coding scheme and providescode bits. Each data packet in the data stream is encoded separately toobtain a corresponding code block or coded data packet. The codingincreases the reliability of the data transmission. The coding schememay include cyclic redundancy check (CRC) generation, convolutionalcoding, Turbo coding, low density parity check (LDPC) coding, blockcoding, other coding, or a combination thereof. With spatial spreading,the SNR can vary across a code block even if the MIMO channel is staticover the code block. A sufficiently powerful coding scheme may be usedto combat the SNR variation across the code block, so that codedperformance is proportional to the average SNR across the code block.Some exemplary coding schemes that can provide good performance forspatial spreading include Turbo code (e.g., the one defined by IS-856),LDPC code, and convolutional code.

A channel interleaver 624 interleaves (i.e., reorders) the code bitsbased on an interleaving scheme to achieve frequency, time and/orspatial diversity. The interleaving may be performed across a codeblock, a partial code block, multiple code blocks, and so on. A symbolmapping unit 626 maps the interleaved bits based on a modulation schemeand provides a stream of data symbols {s_(l)}. Unit 626 groups each setof B interleaved bits to form a B-bit value, where B≧1, and further mapseach B-bit value to a specific modulation symbol based on the modulationscheme (e.g., QPSK, M-PSK, or M-QAM, where M=2^(B)). Unit 626 provides ablock of data symbols for each code block.

In FIG. 6, N_(D) TX data stream processors 620 process N_(D) datastreams. One TX data stream processor 620 may also process the N_(D)data streams, e.g., in a time division multiplex (TDM) manner.

Data may be transmitted in various manners in the MIMO system. Forexample, if N_(D)=1, then one data stream is processed, demultiplexed,and transmitted on all N_(S) transmission channels of the MIMO channel.If N_(D)=N_(S), then one data stream may be processed and transmitted oneach transmission channel. In any case, the data to be sent on eachtransmission channel may be encoded and modulated based on the rateselected for that transmission channel. A multiplexer/demultiplexer(Mux/Demux) 628 receives and multiplexes/demultiplexes the data symbolsfor the N_(D) data streams into N_(S) data symbol streams, one datasymbol stream for each transmission channel. If N_(D)=1, then Mux/Demux628 demultiplexes the data symbols for one data stream into N_(S) datasymbol streams. If N_(D)=N_(S), then Mux/Demux 628 can simply providethe data symbols for each data stream as a respective data symbolstream.

TX spatial processor 530 receives and spatially processes the N_(S) datasymbol streams. Within TX spatial processor 530, a spatial spreader 632receives the N_(S) data symbol streams, performs spatial spreading foreach transmission span m with the steering matrix V(m) selected for thattransmission span, and provides N_(S) spread symbol streams. Thesteering matrices may be retrieved from a steering matrix (SM) storage642 within memory unit 542 or generated by controller 540 as they areneeded. A spatial processor 634 then spatially processes the N_(S)spread symbol streams with the identity matrix I for partial-CSItransmission or with the matrices E(m) of eigenvectors for full-CSItransmission. A multiplexer 636 multiplexes the transmit symbols fromspatial processor 634 with pilot symbols (e.g., in a time divisionmultiplexed manner) and provides N_(T) transmit symbol streams for theN_(T) transmit antennas.

FIG. 7 shows a block diagram of an RX spatial processor 560 a and an RXdata processor 570 a, which are one embodiment of RX spatial processor560 and RX data processor 570, respectively, at receiving entity 150.N_(R) receiver units 554 a through 554 r provide received pilot symbols,{r_(i) ^(p)} for i=1 . . . N_(R), to channel estimator 584. Channelestimator 584 estimates the channel response matrix H(m) based on thereceived pilot symbols and further estimates the SNR of eachtransmission channel. Controller 580 derives a spatial filter matrixM(m) and possibly a diagonal matrix D(m) for each transmission span mbased on the channel response matrix H(m) and possibly the steeringmatrix V(m). Receiving entity 150 is synchronized with transmittingentity 110 so that both entities use the same steering matrix V(m) foreach transmission span m. The matrix M(m) may be derived as shown inequation (10) for the full-CSI transmission and as shown in equations(17) and (23) for the partial-CSI transmission with the CCMI and MMSEtechniques, respectively. The matrix M(m) may or may not include thesteering matrix V(m) depending on whether the receiver spatialprocessing and spatial despreading are performed jointly or separately.

FIG. 7 shows receiver spatial spreading and spatial despreading beingperformed separately. RX spatial processor 560 obtains received datasymbols, {r_(i) ^(d)} for i=1 . . . N_(R), from receiver units 554 athrough 554 r and the matrices M(m) and V(m) from controller 580. WithinRX spatial processor 560, a spatial processor 762 performs receiverspatial processing on the received data symbols for each transmissionspan with the matrices M(m). A spatial despreader 764 then performsspatial despreading with the matrix V(m) and provides recovered symbolsto RX data processor 570. The receiver spatial processing and spatialdespreading may also be performed jointly using the effective MIMOchannel estimate, as described above.

For the embodiment shown in FIG. 7, RX data processor 570 a includes amultiplexer/demultiplexer (Mux/Demux) 768 and N_(D) RX data streamprocessors 770 a through 770 nd for the N_(D) data streams. Mux/Demux768 receives and multiplexes/demultiplexes the N_(S) recovered symbolstreams for the N_(S) transmission channels into N_(D) recovered symbolstreams for the N_(D) data streams. Within each RX data stream processor770, a symbol demapping unit 772 demodulates the recovered symbols forits data stream in accordance with the modulation scheme used for thatstream and provides demodulated data. A channel deinterleaver 774deinterleaves the demodulated data in a manner complementary to theinterleaving performed on that stream by transmitting entity 110. Adecoder 776 decodes the deinterleaved data in a manner complementary tothe encoding performed by transmitting entity 110 on that stream. Forexample, a Turbo decoder or a Viterbi decoder may be used for decoder776 if Turbo or convolutional coding, respectively, is performed bytransmitting entity 110. Decoder 776 provides a decoded data stream,which includes a decoded data packet for each data symbol block.

FIG. 8 shows a block diagram of an RX spatial processor 560 b and an RXdata processor 570 b, which implement the SIC technique for receivingentity 150. For simplicity, N_(D)=N_(S) and RX spatial processor 560 band RX data processor 570 b implement N_(S) cascaded receiver processingstages for the N_(S) data symbol streams. Each of stages 1 to N_(S)−1includes a spatial processor 860, an interference canceller 862, an RXdata stream processor 870, and a TX data stream processor 880. The laststage includes only a spatial processor 860 ns and an RX data streamprocessor 870 ns. Each RX data stream processor 870 includes a symboldemapping unit, a channel deinterleaver, and a decoder, as shown in FIG.7. Each TX data stream processor 880 includes an encoder, a channelinterleaver, and a symbol mapping unit, as shown in FIG. 6.

For stage 1, spatial processor 860 a performs receiver spatialprocessing on the N_(R) received symbol streams and provides onerecovered symbol stream {ŝ₁}. RX data stream processor 870 ademodulates, deinterleaves, and decodes the recovered symbol stream {ŝ₁}and provides a corresponding decoded data stream {{circumflex over(d)}₁}. TX data stream processor 880 a encodes, interleaves, andmodulates the decoded data stream {{circumflex over (d)}₁} in the samemanner performed by transmitting entity 110 for that stream and providesa remodulated symbol stream {{hacek over (s)}₁}. Interference canceller862 a spatially spreads the remodulated symbol stream {{hacek over(s)}₁} with the steering matrix V(m) and further multiplies the resultswith the channel response matrix Ĥ(m) to obtain N_(R) interferencecomponents due to data symbol stream {s₁}. The N_(R) interferencecomponents are subtracted from the N_(R) received symbol streams toobtain N_(R) modified symbol streams, which are provided to stage 2.

Each of stages 2 through N_(S)−1 performs the same processing as stage1, albeit on the N_(R) modified symbol streams from the preceding stageinstead of the N_(R) received symbol streams. The last stage performsspatial processing and decoding on the N_(R) modified symbol streamsfrom stage N_(S)−1 and does not perform interference estimation andcancellation.

Spatial processors 860 a through 860 ns may each implement the CCMI,MMSE, or some other technique. Each spatial processor 860 multiplies aninput (received or modified) symbol vector r _(sic) ^(l)(m) with aspatial filter matrix M _(sic) ^(l)(m) and the steering matrix V(m) toobtain a recovered symbol vector ŝ_(sic) ^(l)(m) and provides therecovered symbol stream for that stage. The matrix M _(sic) ^(l)(m) isderived based on a reduced channel response matrix Ĥ ^(l)(m) for thestage. The matrix Ĥ ^(l)(m) is equal to Ĥ(m) with the columns for all ofthe data symbol streams already recovered in prior stages removed.

4. Rate Selection and Control

For both full-CSI and partial-CSI transmission, the receiving entity canestimate the SNR of each transmission channel. The SNR computation isdependent on (1) whether full-CSI or partial-CSI transmission is used,(2) whether spatial spreading is performed, and (3) the particularreceiver spatial processing technique (e.g., CCMI, MMSE, or SIC) used bythe receiving entity in the case of partial-CSI transmission. For aMIMO-OFDM system, the SNR for each subband of each transmission channelmay be estimated and averaged to obtain the SNR of the transmissionchannel. In any case, an operating SNR, γ_(op)(l), for each transmissionchannel may be computed based on the SNR of the transmission channel,γ_(pd)(l), and an SNR offset, γ_(os)(l), as follows:γ_(op)(l)=γ_(pd)(l)+γ_(os)(l)  Eq (28)where the units are in decibels (dB). The SNR offset may be used toaccount for estimation error, variability in the channel, and otherfactors. A suitable rate is selected for each transmission channel basedon the operating SNR of the transmission channel.

The MIMO system may support a specific set of rates. One of thesupported rates may be for a null rate, which is a data rate of zero.Each of the remaining rates is associated with a particular non-zerodata rate, a particular coding scheme or code rate, a particularmodulation scheme, and a particular minimum SNR required to achieve adesired level of performance, e.g., 1% packet error rate (PER) for anon-fading AWGN channel. For each supported non-zero rate, the requiredSNR may be obtained based on the specific system design (such as theparticular code rate, interleaving scheme, and modulation scheme used bythe system for that rate) and for an AWGN channel. The required SNR maybe obtained by computer simulation, empirical measurements, and so on,as is known in the art. The set of supported rates and their requiredSNRs may be stored in a look-up table.

The operating SNR, γ_(op)(l), of each transmission channel may beprovided to the look-up table, which then returns the rate q(l) for thattransmission channel. This rate is the highest supported rate with arequired SNR, γ_(req)(l), that is less than or equal to the operatingSNR, or γ_(req)(l)≦γ_(op)(l). The receiving entity can thus select thehighest possible rate for each transmission channel based on itsoperating SNR.

5. Steering Matrix Generation

The steering matrices used for spatial spreading may be generated invarious manners, and some exemplary schemes are described below. A setof L steering matrices may be pre-computed and stored at thetransmitting and receiving entities and thereafter retrieved for use asthey are needed. Alternatively, these steering matrices may be computedin real time as they are needed.

The steering matrices should be unitary matrices and satisfy thefollowing condition:V ^(H)(i)· V (i)= I , for i=1 . . . L.  Eq (29)Equation (28) indicates that each column of V(i) should have unit energyand the Hermitian inner product of any two columns of V(i) should bezero. This condition ensures that the N_(S) data symbols sentsimultaneously using the steering matrix V(i) have the same power andare orthogonal to one another prior to transmission.

Some of the steering matrices may also be uncorrelated so that thecorrelation between any two uncorrelated steering matrices is zero or alow value. This condition may be expressed as:C (ij)= V ^(H)(i)· V (j)≈0, for i=1 . . . L, j=1 . . . L, and i≠j,  Eq(30)where C(ij) is the correlation matrix for V(i) and V(j) and 0 is amatrix of all zeros. The condition in equation (30) may improveperformance for some applications but is not necessary for mostapplications.

The set of L steering matrices {V} may be generated using variousschemes. In a first scheme, the L steering matrices are generated basedon matrices of random variables. An N_(S)×N_(T) matrix G with elementsthat are independent identically distributed complex Gaussian randomvariables, each having zero mean and unit variance, is initiallygenerated. An N_(T)×N_(T) correlation matrix of G is computed anddecomposed using eigenvalue decomposition as follows:R _(G) =G ^(H) ·G=E _(G) ·D _(G) ·E _(G) ^(H).  Eq (31)The matrix E _(G) is used as a steering matrix V(i) and added to theset. The process is repeated until all L steering matrices aregenerated.

In a second scheme, the L steering matrices are generated based on a setof (log₂ L)+1 independent isotropically distributed (IID) unitarymatrices, as follows:V (l ₁ l ₂ . . . l _(Q))=Ω ₁ ^(l) ¹ ·Ω ₂ ^(l) ² · . . . ·Ω _(Q) ^(l)^(Q) ·V ₀, for l ₁ , l ₂ , . . . , l _(Q)ε {0,1},  Eq (32)where V ₀ is an N_(T)×N_(S) independent isotropically distributedunitary matrix;

-   -   i=l₁l₂ . . . l_(Q), where Q=log₂ L and l_(j) is the j-th bit of        index i; and        -   Ω _(j) ^(l) ^(j) , for j=1 . . . Q, is an N_(T)×N_(T) IID            unitary matrix.            The second scheme is described by T. L. Marzetta et al. in            “Structured Unitary Space-Time Autocoding Constellations,”            IEEE Transaction on Information Theory, Vol. 48, No. 4,            April 2002.

In a third scheme, the L steering matrices are generated by successivelyrotating an initial unitary steering matrix V(1) in an N_(T)-dimensionalcomplex space, as follows:V (i+1)=Θ ^(i) ·V (1), for i=1 . . . L−1,  Eq (33)where Θ ^(i) is an N_(T)×N_(T) diagonal unitary matrix with elementsthat are L-th roots of unity. The third scheme is described by B. M.Hochwald et al. in “Systematic Design of Unitary Space-TimeConstellations,” IEEE Transaction on Information Theory, Vol. 46, No. 6,September 2000.

In a fourth scheme, the set of L steering matrices is generated with abase matrix B and different scalars. The base matrix may be a Walshmatrix, a Fourier matrix, or some other matrix. A 2×2 Walsh matrix maybe expressed as

${\underset{\_}{W}}_{2 \times 2} = {\begin{bmatrix}1 & 1 \\1 & {- 1}\end{bmatrix}.}$A larger size Walsh matrix W _(2N×2N) may be formed from a smaller sizeWalsh matrix W _(N×N), as follows:

$\begin{matrix}{{\underset{\_}{W}}_{2N \times 2N} = {\begin{bmatrix}{\underset{\_}{W}}_{N \times N} & {\underset{\_}{W}}_{N \times N} \\{\underset{\_}{W}}_{N \times N} & {- {\underset{\_}{W}}_{N \times N}}\end{bmatrix}.}} & {{Eq}\mspace{14mu}(34)}\end{matrix}$Walsh matrices have dimensions that are powers of two.

An N_(T)×N_(T) Fourier matrix D has element w_(n,m) in the n-th row ofthe m-th column, which may be expressed as:

$\begin{matrix}{{w_{n,m} = {\mathbb{e}}^{{- {j2\pi}}\frac{{({n - 1})}{({m - 1})}}{N_{T}}}},{{{for}\mspace{14mu} n} = {{\{ {1\ldots\mspace{11mu} N_{T}} \}\mspace{14mu}{and}\mspace{14mu} m} = \{ {1\ldots\mspace{11mu} N_{T}} \}}},} & {{Eq}\mspace{14mu}(35)}\end{matrix}$where n is a row index and m is a column index. Fourier matrices of anysquare dimension (e.g., 2, 3, 4, 5, and so on) may be formed.

An N_(T)×N_(T) Walsh matrix W, Fourier matrix D, or some other matrixmay be used as the base matrix B to form other steering matrices. Eachof rows 2 through N_(T) of the base matrix may be independentlymultiplied with one of M different possible scalars, where M>1. M^(N)^(T) ⁻¹ different steering matrices may be obtained from M^(N) ^(T) ⁻¹different permutations of the M scalars for the N_(T)−1 rows. Forexample, each of rows 2 through N_(T) may be independently multipliedwith a scalar of +1, −1, +j, or −j, where j=√{square root over (−1)}.For N_(T)=4 and M=4, 64 different steering matrices may be generatedfrom the base matrix B with the four different scalars. Additionalsteering matrices may be generated with other scalars, e.g., e^(±j3π/4),e^(±jπ/4), e^(±jπ/8), and so on. In general, each row of the base matrixmay be multiplied with any scalar having the form e^(jθ), where θ may beany phase value. N_(T)×N_(T) steering matrices may be generated asV(i)=g_(N) _(T) ·B(i), where g_(N) _(T) =1/√{square root over (N_(T))}and B(i) is the i-th matrix generated with the base matrix B. Thescaling by g_(N) _(T) ensures that each column of V(i) has unit power.

Other schemes may also be used to generate the set of L steeringmatrices, and this is within the scope of the invention. In general, thesteering matrices may be generated in a pseudo-random manner (e.g., suchas the first scheme) or a deterministic manner (e.g., such as thesecond, third, and fourth schemes).

The spatial spreading techniques described herein may be implemented byvarious means. For example, these techniques may be implemented inhardware, software, or a combination thereof. For a hardwareimplementation, the processing units for spatial spreading at thetransmitting entity and spatial despreading at the receiving entity maybe implemented within one or more application specific integratedcircuits (ASICs), digital signal processors (DSPs), digital signalprocessing devices (DSPDs), programmable logic devices (PLDs), fieldprogrammable gate arrays (FPGAs), processors, controllers,micro-controllers, microprocessors, other electronic units designed toperform the functions described herein, or a combination thereof.

For a software implementation, the spatial spreading techniques may beimplemented with modules (e.g., procedures, functions, and so on) thatperform the functions described herein. The software codes may be storedin memory units (e.g., memory units 542 and 582 in FIG. 5) and executedby a processor (e.g., controllers 540 and 580 in FIG. 5). The memoryunit may be implemented within the processor or external to theprocessor, in which case it can be communicatively coupled to theprocessor via various means as is known in the art.

Headings are included herein for reference and to aid in locatingcertain sections. These headings are not intended to limit the scope ofthe concepts described therein under, and these concepts may haveapplicability in other sections throughout the entire specification.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

1. A method of receiving a data transmission sent by a transmittingentity to a receiving entity in a wireless multiple-inputmultiple-output (MIMO) communication system, comprising: obtaining aplurality of streams of received symbols for a plurality of streams ofdata symbols transmitted via a plurality of transmission channels in aMIMO channel, wherein the plurality of streams of data symbols arespatially spread with a plurality of steering matrices and furtherspatially processed prior to transmission via the MIMO channel, andwherein the spatial spreading with the plurality of steering matricesrandomizes the plurality of transmission channels for the plurality ofstreams of data symbols; performing receiver spatial processing on theplurality of streams of received symbols to obtain a plurality ofstreams of detected symbols; and performing spatial despreading on theplurality of streams of detected symbols with the plurality of steeringmatrices to obtain a plurality of streams of recovered symbols, whichare estimates of the plurality of streams of data symbols.
 2. The methodof claim 1, further comprising: obtaining an effective MIMO channelestimate that includes a channel response estimate for the MIMO channeland the plurality of steering matrices used for spatial spreading; andperforming the receiver spatial processing and the spatial despreadingjointly based on the effective MIMO channel estimate.
 3. The method ofclaim 1, wherein the performing spatial despreading comprises performingspatial despreading on each block of detected symbols in the pluralityof streams of detected symbols with at least two steering matrices usedby the transmitting entity on a corresponding block of data symbols. 4.The method of claim 1, wherein the performing spatial despreadingcomprises performing spatial despreading on the plurality of streams ofdetected symbols using a set of L steering matrices, where L is aninteger greater than one, and wherein the L steering matrices areunitary matrices.
 5. The method of claim 1, wherein the performingreceiver spatial processing comprises multiplying the plurality ofstreams of received symbols with matrices of eigenvectors for aplurality of eigenmodes of the MIMO channel to obtain the plurality ofstreams of detected symbols.
 6. The method of claim 1, wherein theperforming receiver spatial processing comprises deriving a matchedfilter based on a channel response estimate for the MIMO channel, andmultiplying the plurality of streams of received symbols with thematched filter to obtain the plurality of streams of detected symbols.7. The method of claim 1, wherein the performing receiver spatialprocessing comprises performing receiver spatial processing on theplurality of streams of received symbols based on a channel correlationmatrix inversion (CCMI) technique.
 8. The method of claim 1, wherein theperforming receiver spatial processing comprises performing receiverspatial processing on the plurality of streams of received symbols basedon a minimum mean square error (MMSE) technique.
 9. The method of claim1, wherein the performing receiver spatial processing comprisesperforming receiver spatial processing on the plurality of streams ofreceived symbols based on a successive interference cancellation (SIC)technique.
 10. The method of claim 1, further comprising: estimating asignal-to-noise-and-interference ratio (SNR) of each of the plurality oftransmission channels for the plurality of streams of data symbols; andselecting a rate for each of the plurality of streams of data symbolsbased on an SNR estimate for the transmission channel for the stream ofdata symbols.
 11. The method of claim 1, further comprising: sending tothe transmitting entity at least one rate for the plurality of streamsof data symbols, wherein the plurality of streams of data symbols areencoded and modulated based on the at least one rate.
 12. The method ofclaim 1, further comprising: estimating asignal-to-noise-and-interference ratio (SNR) of each of the plurality oftransmission channels for the plurality of streams of data symbols; andselecting a single rate for the plurality of streams of data symbolsbased on SNR estimates for the plurality of transmission channels. 13.The method of claim 1, further comprising: demodulating and decodingeach of the plurality of streams of recovered symbols based on a rateselected for the stream to obtain decoded data.
 14. The method of claim1, wherein the performing spatial despreading comprises performingspatial despreading on the plurality of streams of detected symbols withat least two steering matrices for a plurality of subbands of eachsymbol period used for data transmission.
 15. An apparatus in a wirelessmultiple-input multiple-output (MIMO) communication system, comprising:a plurality of receiver units to obtain a plurality of streams ofreceived symbols for a plurality of streams of data symbols transmittedvia a plurality of transmission channels in a MIMO channel from atransmitting entity to a receiving entity, wherein the plurality ofstreams of data symbols are spatially spread with a plurality ofsteering matrices and further spatially processed prior to transmissionvia the MIMO channel, and wherein the spatial spreading with theplurality of steering matrices randomizes the plurality of transmissionchannels for the plurality of streams of data symbols; a spatialprocessor to perform receiver spatial processing on the plurality ofstreams of received symbols to obtain a plurality of streams of detectedsymbols; and a spatial despreader to perform spatial despreading on theplurality of streams of detected symbols with the plurality of steeringmatrices to obtain a plurality of streams of recovered symbols, whichare estimates of the plurality of streams of data symbols.
 16. Theapparatus of claim 15, further comprising: a channel estimator to obtainan effective MIMO channel estimate that includes a channel responseestimate for the MIMO channel and the plurality of steering matricesused for spatial spreading, and wherein the spatial processor and thespatial despreader perform receiver spatial processing and spatialdespreading jointly based on the effective MIMO channel estimate. 17.The apparatus of claim 15, wherein the spatial processor multiplies theplurality of streams of received symbols with matrices of eigenvectorsfor a plurality of eigenmodes of the MIMO channel to obtain theplurality of streams of detected symbols.
 18. The apparatus of claim 15,wherein the spatial processor multiplies the plurality of streams ofreceived symbols with a matched filter, derived based on a channelresponse estimate for the MIMO channel, to obtain the plurality ofstreams of detected symbols.
 19. The apparatus of claim 15, wherein thespatial processor performs receiver spatial processing based on achannel correlation matrix inversion (CCMI) technique, a minimum meansquare error (MMSE) technique, or a successive interference cancellation(SIC) technique.
 20. The apparatus of claim 15, further comprising: achannel estimator to estimate a signal-to-noise-and-interference ratio(SNR) of each of the plurality of transmission channels for theplurality of streams of data symbols; and a controller to select a ratefor each of the plurality of streams of data symbols based on an SNRestimate for a transmission channel for the stream of data symbols, andwherein each stream of data symbols is encoded and modulated by thetransmitting entity based on the rate selected for the stream of datasymbols.
 21. The apparatus of claim 15, further comprising: a dataprocessor to demodulate and decode each of the plurality of streams ofrecovered symbols based on a rate selected for the stream to obtaindecoded data.
 22. The apparatus of claim 15, wherein the MIMO systemutilizes orthogonal frequency division multiplexing (OFDM), and whereinthe spatial despreader performs spatial despreading with at least twodifferent steering matrices for a plurality of subbands in each symbolperiod with data transmission.
 23. An apparatus in a wirelessmultiple-input multiple-output (MIMO) communication system, comprising:means for obtaining a plurality of streams of received symbols for aplurality of streams of data symbols transmitted via a plurality oftransmission channels in a MIMO channel from a transmitting entity to areceiving entity, wherein the plurality of streams of data symbols arespatially spread with a plurality of steering matrices and furtherspatially processed prior to transmission via the MIMO channel, andwherein the spatial spreading with the plurality of steering matricesrandomizes the plurality of transmission channels for the plurality ofstreams of data symbols; means for performing receiver spatialprocessing on the plurality of streams of received symbols to obtain aplurality of streams of detected symbols; and means for performingspatial despreading on the plurality of streams of detected symbols withthe plurality of steering matrices to obtain a plurality of streams ofrecovered symbols, which are estimates of the plurality of streams ofdata symbols.
 24. The apparatus of claim 23, wherein the means forperforming receiver spatial processing comprises means for multiplyingthe plurality of streams of received symbols with matrices ofeigenvectors for a plurality of eigenmodes of the MIMO channel to obtainthe plurality of streams of detected symbols.
 25. The apparatus of claim23, wherein the means for performing receiver spatial processingcomprises means for multiplying the plurality of streams of receivedsymbols with a matched filter, derived based on a channel responseestimate for the MIMO channel, to obtain the plurality of streams ofdetected symbols.
 26. The apparatus of claim 23, further comprising:means for estimating a signal-to-noise-and-interference ratio (SNR) ofeach of the plurality of transmission channels for the plurality ofstreams of data symbols; and means for selecting a rate for each of theplurality of streams of data symbols based on an SNR estimate for atransmission channel for the stream of data symbols, and wherein eachstream of data symbols is encoded and modulated by the transmittingentity based on the rate selected for the stream of data symbols.